package com.woniuxy.yogaapp.util;

import java.io.IOException;
import org.json.JSONException;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;

public class SMSUtil {
	// 短信应用 SDK AppID
	private static int appid = 1400236130; // SDK AppID 以1400开头
	// 短信应用 SDK AppKey
	private static String appkey = "6677af8856aa96755c189de4c2e885b2";
	// 需要发送短信的手机号码
	// private static String[] phoneNumbers = { "18048614652" };
	// 短信模板 ID，需要在短信应用中申请
	private static int templateId = 383123; // NOTE: 这里的模板 ID`7839`只是示例，真实的模板 ID
											// 需要在短信控制台中申请
	// 签名
	private static String smsSign = "yogaApp"; // NOTE:

	public static void getCode(String phoneNumber, String[] params) {
		try {
			// String[] params = { "123456", "1" };
			SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
			SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber, templateId, params, smsSign, "",
					""); // 签名参数未提供或者为空时，会使用默认签名发送短信
			System.out.println(result);
		} catch (HTTPException e) {
			// HTTP 响应码错误
			e.printStackTrace();
		} catch (JSONException e) {
			// JSON 解析错误
			e.printStackTrace();
		} catch (IOException e) {
			// 网络 IO 错误
			e.printStackTrace();
		}

	}

	/**
	 * 判断验证码是否失效 true失效 false没失效
	 * 
	 * @param firstTime
	 *            获取验证码时间
	 * @param lastTime
	 *            点击注册时的时间
	 * @param overtime
	 *            失效时间
	 * @return
	 */
	public static boolean loseTime(long firstTime, long lastTime, long overtime) {
		boolean flag = false;
		long diff = lastTime - firstTime;
		if (diff / 1000 > overtime) {
			flag = true;
		}
		return flag;
	}

	/**
	 * 给管理员 发送消息
	 * 
	 * @param phoneNumber
	 *            管理员电话号码
	 * @param params
	 *            发送的参数 {1} 用户名字 {2}什么教练 什么瑜伽场馆
	 */
	public static void addInformToAdmin(String phoneNumber, String[] params) {
		try {
			// String[] params = { "123456", "1" };
			SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
			SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber, 386000, params, smsSign, "", ""); // 签名参数未提供或者为空时，会使用默认签名发送短信
			System.out.println(result);
		} catch (HTTPException e) {
			// HTTP 响应码错误
			e.printStackTrace();
		} catch (JSONException e) {
			// JSON 解析错误
			e.printStackTrace();
		} catch (IOException e) {
			// 网络 IO 错误
			e.printStackTrace();
		}

	}

	/**
	 * 
	 * 你好：{1}教练！你收到一条预约请求，请及时处理！
	 * 
	 * @param phoneNumber
	 *            教练电话号码
	 * @param params
	 *            {1}教练名字
	 */
	public static void appointToCoach(String phoneNumber, String[] params) {
		try {
			SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
			SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber, 387096, params, smsSign, "", ""); // 签名参数未提供或者为空时，会使用默认签名发送短信
			System.out.println(result);
		} catch (HTTPException e) {
			// HTTP 响应码错误
			e.printStackTrace();
		} catch (JSONException e) {
			// JSON 解析错误
			e.printStackTrace();
		} catch (IOException e) {
			// 网络 IO 错误
			e.printStackTrace();
		}

	}

}
